package cn.lynch.bbs.service;

import java.util.List;

import cn.lynch.bbs.domain.Category;

public interface CategoryService {
	
	/**
	 * 新增版面分类信息
	 * @param category
	 */
	void createCategory(Category category);
	
	/**
	 * 移动分类显示顺序
	 * @param categoryId
	 * @param up 是否是向上移动
	 * @return 成功移动返回True， 如版面已在最上方或最下方，返回False
	 */
	boolean moveCategory(String categoryId, boolean up);
	
	/**
	 * 修改分类， 只允许修改名称及描述
	 * @param category
	 */
	void updateCategory(Category category);
	
	/**
	 * 移除分类
	 * @param categoryId
	 */
	void removeCategory(String categoryId);
	
	/**
	 * 根据Id查询分类， 会立即将所关联的Forum对象同时加载出来
	 * @param categoryId
	 */
	Category findCategory(String categoryId);
	
	/**
	 * 查询所有分类信息， 会立即将所关联的Forum对象同时加载出来
	 * @return
	 */
	List<Category> findAllCategories();
}
